<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>

    <script>
        // switch (条件) {
        //     case 结果1:
        //         代码块;
        //         break;
        //     case 结果2:
        //         代码块;
        //         break;
        //     case 结果3:
        //         代码块;
        //         break;
        //     case 结果4:
        //         代码块;
        //         break;
        //     default:
        //         代码块;
        // }

        // 条件与结果全等匹配关系
        // break可以省略:省略后从匹配项开始一直往后执行，直到遇到break为止
        // 以上case都不满足，执行default
        // 用作范围比较时,条件写为true


        //案例1：根据用户输入的分数进行评级 使用switch
        //0-60  不及格  60-70 合格  70-85 良好 85以上优秀
        // var socre = prompt('请输入成绩');
        // switch (true) {
        //     case socre >= 0 && socre < 60:
        //         alert('不及格');
        //         break;
        //     case socre >= 60 && socre < 70:
        //         alert('及格');
        //         break;
        //     case socre >= 70 && socre < 85:
        //         alert('良好');
        //         break;
        //     case socre >= 85 && socre <= 100:
        //         alert('优秀');
        //         break;
        //     default:
        //         alert('输入有误，请重新输入');
        // }


        /* 案例2:检测变量a的数据类型 使用switch
         *  是字符串弹出'字符串'
         *  是数字: 再判断是正数弹出'正数',负数弹出'负数',否则弹出'NaN'(使用if)
         *  是布尔值: 再判断是true弹出'真',false弹出'假'(三元)
         *  是undefined弹出'未定义'
         *  是对象:再判断是null弹出'空',否则弹出'对象'(使用三元运算符)
         */

        // var a = function() {};
        // switch (typeof a) {
        //     case 'string':
        //         alert('字符串');
        //         break;
        //     case 'number':
        //         if (a >= 0) alert('正数');
        //         else if (a < 0) alert('负数');
        //         else alert('NaN');
        //         break;
        //     case 'boolean':
        //         alert(a == true ? '真' : '假');
        //         // if (a) {
        //         //     alert('真');
        //         // } else {
        //         //     alert('假');
        //         // }
        //         break;
        //     case 'undefined':
        //         alert('未定义');
        //         break;
        //     case 'object':
        //         // alert(String(a) === 'null' ? '空' : '对象');
        //         if (String(a) === 'null') {
        //             alert('空');
        //         } else {
        //             alert('对象');
        //         }
        //         break;
        //     default:
        //         alert(123);
        // }

        /*
         *弹出输入框判断用户是否输入值，
         *没输入内容：弹出提示框“请刷新页面重新输入动作”
         *输入内容：再判断是不是数字：
         *不是数字：弹出提示框“只允许输入数字”
         *是数字：弹出第二个输入框要求输入运算的第二个值，依次再判断是否输入内容，是否为数字，与第一个值判断一致
         *当第1及第2个值都输入后再弹出第三个输入框，要求输入运算符，通过switch语句分别判断：
         *如果是”+”号，则执行加法运算并alert运算结果
         *如果是”-”号，则执行减法运算并alert运算结果
         *如果是”*”号，则执行乘法运算并alert运算结果
         *如果是”/”号，则执行除法运算并alert运算结果
         *其它符号，则alert “很遗憾，你输入的运算超出了运算范围
         */

        // var a = prompt('请输入数字');
        // if (a) {
        //     //有内容
        //     if (!isNaN(a)) {
        //         //是数字
        //         var b = prompt('请输入第二个数字');
        //         if (b) {
        //             //有内容
        //             if (!isNaN(b)) {
        //                 //是数字
        //                 var c = prompt('请输入运算符');
        //                 switch (c) {
        //                     case '+':
        //                         alert(+a + +b);
        //                         break;
        //                     case '-':
        //                         alert(a - b);
        //                         break;
        //                     case '*':
        //                         alert(a * b);
        //                         break;
        //                     case '/':
        //                         alert(a / b);
        //                         break;
        //                     default:
        //                         alert('很遗憾，你输入的运算超出了运算范围');
        //                 }
        //             } else {
        //                 //不是数字
        //                 alert('只允许输入数字');
        //             }
        //         } else {
        //             //没有内容
        //             alert('请刷新页面重新输入动作');
        //         }

        //     } else {
        //         //不是数字
        //         alert('只允许输入数字');
        //     }
        // } else {
        //     //没有内容
        //     alert('请刷新页面重新输入动作');
        // }



        //案例4： 让小明输入月薪，计算出小明应该交多少税
        //  5000以内不交税
        //  (5000-10000]的部分交5%；
        //  (10000-20000]的部分交10%；
        //  20000以上的部分交20%；



        // var money = prompt('请输入月薪');
        // var pay; //要交多少税
        // switch (true) {
        //     case money > 0 && money <= 5000:
        //         pay = 0;
        //         break;
        //     case money > 5000 && money <= 10000:
        //         pay = (money - 5000) * 0.05;
        //         break;
        //     case money > 10000 && money <= 20000:
        //         pay = 5000 * 0.05 + (money - 10000) * 0.1;
        //         break;
        //     case money > 20000:
        //         pay = 5000 * 0.05 + 10000 * 0.1 + (money - 20000) * 0.2;
        //         break;
        //     default:
        //         alert('您的输入有误');
        // }
        // alert(' 小明应缴纳' + pay + '元的税');
    </script>

</body>

</html>